package org.example.campusforum.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 文章查询响应数据记录传输对象
 *
 * 用于封装单条文章查询结果的详细信息，包含文章基本信息和作者信息。
 * 通过联表查询获得，避免多次数据库查询，提高查询效率。
 * 主要用于文章列表展示场景。
 *
 * @author CampusForum Team
 * @version 1.0
 * @since 2024
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ArticleGetResponseDataRecord {

    /**
     * 文章ID
     * 来源于article表，文章的唯一标识
     */
    private Long articleId;

    /**
     * 作者昵称
     * 来源于user表，文章作者的显示名称
     */
    private String nickname;

    /**
     * 作者头像URL
     * 来源于user表，文章作者的头像链接
     */
    private String avatar;

    /**
     * 文章标题
     * 来源于article表，文章的标题信息
     */
    private String title;

    /**
     * 文章内容
     * 来源于article表，文章的正文内容
     */
    private String content;

    /**
     * 文章点赞数
     * 来源于article表，文章获得的点赞总数
     */
    private Integer likeCount;

    /**
     * 文章评论数
     * 来源于article表，文章下的评论总数
     */
    private Integer commentCount;

    /**
     * 文章浏览数
     * 来源于article表，文章被查看的次数
     */
    private Integer viewCount;
}
